// var i;
// var $uI_AddPower_UIBindings = require("./UI_AddPower_UIBindings");
// var $uIView = require("./UIView");
// var $excel = require("./Excel");
// var $playerDataManager = require("./PlayerDataManager");
// var $tipsManager = require("./TipsManager");
// var $aDManager = require("./ADManager");
// var $const_Hall = require("./Const_Hall");
// var $hallGlobalVariable = require("./HallGlobalVariable");
// var $uIManager = require("./UIManager");
// var $bundleConfig = require("./BundleConfig");
// var $uIConfig_Home = require("./UIConfig_Home");
// var $commonUtils = require("./CommonUtils");
// var $const_Common = require("./Const_Common");
// var b = cc._decorator;
// var w = b.ccclass;
// var I = b.property;
// var M = b.inspector;
// var E = (function (e) {
//     function t() {
//         var t = (null !== e && e.apply(this, arguments)) || this;
//         t.auto_ui = null;
//         return t;
//     }
//     __extends(t, e);
//     t.prototype.onLoad = function () {};
//     t.prototype._show = function (e) {
//         var t = [];
//         for (var o = 1; o < arguments.length; o++) {
//             t[o - 1] = arguments[o];
//         }
//         var n = this.auto_ui;
//         if (!this.addPowerData) {
//             this.addPowerData = $excel.Excel.addPower(1);
//             n.txt_addCountLabel.string = "X" + this.addPowerData.addCount;
//             n.txt_priceLabel.string = "" + this.addPowerData.price;
//             n.txt_videoAddCountLabel.string = "X" + this.addPowerData.videoAddCount;
//         }
//         n.txt_lastCountLabel.string =
//             "今日剩余" + (this.addPowerData.maxTime - $playerDataManager.PlayerDataMgr.globalData.addPowerTime) + "次";
//         n.txt_videoLastCountLabel.string =
//             "今日剩余" +
//             (this.addPowerData.videoMaxTime - $playerDataManager.PlayerDataMgr.globalData.videoAddPowerTime) +
//             "次";
//     };
//     t.prototype._clickListener = function (e) {
//         var t = this.auto_ui;
//         switch (e) {
//             case t.btn_closeBtn:
//                 this._close();
//                 break;
//             case t.btn_addBtn:
//                 this.BuyThis(!1);
//                 break;
//             case t.btn_videoAddBtn:
//                 this.BuyThis(!0);
//         }
//     };
//     t.prototype.BuyThis = function (e) {
//         var t = this;

//         function o(e) {
//             var o = new $const_Hall.GetItemsData();
//             o.ids = [$hallGlobalVariable.default.powerId];
//             o.counts = [e ? t.addPowerData.videoAddCount : t.addPowerData.addCount];
//             o.clickCallBack = function () {
//                 if (e) {
//                     $playerDataManager.PlayerDataMgr.globalData.videoAddPowerTime++;
//                     $playerDataManager.PlayerDataMgr.AddPower(t.addPowerData.videoAddCount);
//                     t.auto_ui.txt_videoLastCountLabel.string =
//                         "今日剩余" +
//                         (t.addPowerData.videoMaxTime - $playerDataManager.PlayerDataMgr.globalData.videoAddPowerTime) +
//                         "次";
//                 } else {
//                     $playerDataManager.PlayerDataMgr.globalData.addPowerTime++;
//                     $playerDataManager.PlayerDataMgr.AddPower(t.addPowerData.addCount);
//                     t.auto_ui.txt_lastCountLabel.string =
//                         "今日剩余" +
//                         (t.addPowerData.maxTime - $playerDataManager.PlayerDataMgr.globalData.addPowerTime) +
//                         "次";
//                 }
//                 $tipsManager.TipMgr.showToast("体力 +" + (e ? t.addPowerData.videoAddCount : t.addPowerData.addCount));
//             };
//             $uIManager.default.open($bundleConfig.BundleNames.Home, $uIConfig_Home.UIView_Home.UI_GetItems, o);
//         }
//         if (
//             (e &&
//                 this.addPowerData.videoMaxTime - $playerDataManager.PlayerDataMgr.globalData.videoAddPowerTime <= 0) ||
//             (!e && this.addPowerData.maxTime - $playerDataManager.PlayerDataMgr.globalData.addPowerTime <= 0)
//         ) {
//             $tipsManager.TipMgr.showToast("今日剩余次数不足");
//         } else {
//             e
//                 ? $aDManager.ADMgr.showRewardedVideo("视频购买体力", function () {
//                       o(e);
//                   })
//                 : $playerDataManager.PlayerDataMgr.SubDiamond(this.addPowerData.price) &&
//                   ($commonUtils.default.SendPoint($const_Common.SendPointType.外围打点, "钻石购买体力"), o(e));
//         }
//     };
//     __decorate([I($uI_AddPower_UIBindings.default)], t.prototype, "auto_ui", void 0);
//     return __decorate([w], t);
// })($uIView.default);
// exports.default = E;

// import UI_AddPower_UIBindings from "./UI_AddPower_UIBindings";
// import UIView from "./UIView";
// import { Excel } from "./Excel";
// import { PlayerDataMgr } from "./PlayerDataManager";
// import { TipMgrInstance } from "./TipsManager";
// import { ADMgr } from "./ADManager";
// import { GetItemsData } from "./Const_Hall";
// import HallGlobalVariable from "./HallGlobalVariable";
// import UIManager from "./UIManager";
// import { BundleNames } from "./BundleConfig";
// import { UIView_Home } from "./UIConfig_Home";
// import CommonUtils from "./CommonUtils";
// import { SendPointType } from "./Const_Common";

// const { ccclass, property, inspector } = cc._decorator;

// /**
//  * 建议类名：AddPowerComponent
//  */
// @ccclass
// class UI_AddPower extends UIView {
//     @property(UI_AddPower_UIBindings)
//     auto_ui: UI_AddPower_UIBindings | null = null;

//     private addPowerData: any;

//     onLoad(): void { }

//     /**
//      * 显示界面
//      * @param e - 事件参数
//      * 建议方法名：show
//      */
//     _show(e: any, ...args: any[]): void {
//         const uiBindings = this.auto_ui;
//         if (!this.addPowerData) {
//             this.addPowerData = Excel.addPower(1);
//             uiBindings.txt_addCountLabel.string = "X" + this.addPowerData.addCount;
//             uiBindings.txt_priceLabel.string = "" + this.addPowerData.price;
//             uiBindings.txt_videoAddCountLabel.string = "X" + this.addPowerData.videoAddCount;
//         }
//         uiBindings.txt_lastCountLabel.string =
//             "今日剩余" + (this.addPowerData.maxTime - PlayerDataMgr.globalData.addPowerTime) + "次";
//         uiBindings.txt_videoLastCountLabel.string =
//             "今日剩余" +
//         (this.addPowerData.videoMaxTime - PlayerDataMgr.globalData.videoAddPowerTime) +
//             "次";
//     }

//     /**
//      * 点击事件监听器
//      * @param e - 事件参数
//      * 建议方法名：clickListener
//      */
//     _clickListener(e: cc.Button): void {
//         const uiBindings = this.auto_ui;
//         switch (e) {
//             case uiBindings.btn_closeBtn:
//                 this._close();
//                 break;
//             case uiBindings.btn_addBtn:
//                 this.BuyThis(false);
//                 break;
//             case uiBindings.btn_videoAddBtn:
//                 this.BuyThis(true);
//                 break;
//         }
//     }

//     /**
//      * 购买体力
//      * @param isVideo - 是否通过视频购买
//      * 建议方法名：buyPower
//      */
//     BuyThis(isVideo: boolean): void {
//         const self = this;

//         function handlePurchase(isVideo: boolean): void {
//             const getItemsData = new GetItemsData();
//             getItemsData.ids = [HallGlobalVariable.powerId];
//             getItemsData.counts = [isVideo ? self.addPowerData.videoAddCount : self.addPowerData.addCount];
//             getItemsData.clickCallBack = function () {
//                 if (isVideo) {
//                     PlayerDataMgr.globalData.videoAddPowerTime++;
//                     PlayerDataMgr.AddPower(self.addPowerData.videoAddCount);
//                     self.auto_ui.txt_videoLastCountLabel.string =
//                         "今日剩余" +
//                     (self.addPowerData.videoMaxTime - PlayerDataMgr.globalData.videoAddPowerTime) +
//                         "次";
//                 } else {
//                     PlayerDataMgr.globalData.addPowerTime++;
//                     PlayerDataMgr.AddPower(self.addPowerData.addCount);
//                     self.auto_ui.txt_lastCountLabel.string =
//                         "今日剩余" +
//                     (self.addPowerData.maxTime - PlayerDataMgr.globalData.addPowerTime) +
//                         "次";
//                 }
//                 TipMgrInstance.showToast("体力 +" + (isVideo ? self.addPowerData.videoAddCount : self.addPowerData.addCount));
//             };
//             UIManager.open(BundleNames.Home, UIView_Home.UI_GetItems, getItemsData);
//         }

//         if (
//             (isVideo && this.addPowerData.videoMaxTime - PlayerDataMgr.globalData.videoAddPowerTime <= 0) ||
//             (!isVideo && this.addPowerData.maxTime - PlayerDataMgr.globalData.addPowerTime <= 0)
//         ) {
//             TipMgrInstance.showToast("今日剩余次数不足");
//         } else {
//             if (isVideo) {
//                 ADMgr.showRewardedVideo("视频购买体力", () => {
//                     handlePurchase(isVideo);
//                 });
//             } else {
//                 if (PlayerDataMgr.SubDiamond(this.addPowerData.price)) {
//                     CommonUtils.SendPoint(SendPointType.外围打点, "钻石购买体力");
//                     handlePurchase(isVideo);
//                 }
//             }
//         }
//     }
// }

// export default UI_AddPower;

import UI_AddPower_UIBindings from "./UI_AddPower_UIBindings";
import UIViewBase from "./UIView";
import { Excel } from "./Excel";
import { PlayerDataMgr } from "./PlayerDataManager";
import { TipMgr } from "./TipsManager";
import { ADMgr } from "./ADManager";
import { GetItemsData } from "./Const_Hall";
import FruitDataManager from "./HallGlobalVariable";
import UIManager from "./UIManager";
import { BundleNames } from "./BundleConfig";
import { UIView_Home } from "./UIConfig_Home";

const { ccclass, property, inspector } = cc._decorator;

/**
 * 建议类名：AddPowerComponent
 */
@ccclass
class ViewAddPower extends UIViewBase {
    @property(UI_AddPower_UIBindings)
    auto_ui: UI_AddPower_UIBindings | null = null;

    private addPowerData: any;

    onLoad(): void { }

    /**
     * 显示界面
     * @param event - 事件参数
     * 建议方法名：show
     */
    _show(event: any, ...args: any[]): void {
        const { auto_ui } = this;
        
        if (!this.addPowerData) {
            this.addPowerData = Excel.addPower(1);
            auto_ui.txt_addCountLabel.string = "X" + this.addPowerData.addCount;
            auto_ui.txt_priceLabel.string = "" + this.addPowerData.price;
            auto_ui.txt_videoAddCountLabel.string = "X" + this.addPowerData.videoAddCount;
        }
        
        auto_ui.txt_lastCountLabel.string =
            "今日剩余" + (this.addPowerData.maxTime - PlayerDataMgr.globalData.addPowerTime) + "次";
        auto_ui.txt_videoLastCountLabel.string =
            "今日剩余" + (this.addPowerData.videoMaxTime - PlayerDataMgr.globalData.videoAddPowerTime) + "次";
    }

    /**
     * 点击事件监听器
     * @param button - 事件参数
     * 建议方法名：clickListener
     */
    _clickListener(button: cc.Button): void {
        const { auto_ui } = this;
        
        switch (button) {
            case auto_ui.btn_closeBtn:
                this._close();
                break;
            case auto_ui.btn_addBtn:
                this.buyThis(false);
                break;
            case auto_ui.btn_videoAddBtn:
                this.buyThis(true);
                break;
        }
    }

    /**
     * 购买体力
     * @param isVideo - 是否通过视频购买
     * 建议方法名：buyPower
     */
    buyThis(isVideo: boolean): void {
        const handlePurchase = (isVideo: boolean): void => {
            const itemsData = new GetItemsData();
            itemsData.ids = [FruitDataManager.powerId];
            itemsData.counts = [isVideo ? this.addPowerData.videoAddCount : this.addPowerData.addCount];
            itemsData.clickCallBack = () => {
                if (isVideo) {
                    PlayerDataMgr.globalData.videoAddPowerTime++;
                    PlayerDataMgr.addPower(this.addPowerData.videoAddCount);
                    this.auto_ui.txt_videoLastCountLabel.string =
                        "今日剩余" +
                    (this.addPowerData.videoMaxTime - PlayerDataMgr.globalData.videoAddPowerTime) +
                        "次";
                } else {
                    PlayerDataMgr.globalData.addPowerTime++;
                    PlayerDataMgr.addPower(this.addPowerData.addCount);
                    this.auto_ui.txt_lastCountLabel.string =
                        "今日剩余" +
                    (this.addPowerData.maxTime - PlayerDataMgr.globalData.addPowerTime) +
                        "次";
                }
                TipMgr.showToast("体力 +" + (isVideo ? this.addPowerData.videoAddCount : this.addPowerData.addCount));
            };
            UIManager.open(BundleNames.Home, UIView_Home.UI_GetItems, itemsData);
        }

        if ((isVideo && this.addPowerData.videoMaxTime - PlayerDataMgr.globalData.videoAddPowerTime <= 0) ||
            (!isVideo && this.addPowerData.maxTime - PlayerDataMgr.globalData.addPowerTime <= 0)
        ) {
            TipMgr.showToast("今日剩余次数不足");
        } else {
            if (isVideo) {
                ADMgr.showRewardedVideoAd("视频购买体力", () => {
                    handlePurchase(isVideo);
                });
            } else {
                if (PlayerDataMgr.subtractDiamond(this.addPowerData.price)) {
                    // CommonUtils.sendTrackingEvent(SendPointType.OuterAreaMarking, "钻石购买体力");
                    handlePurchase(isVideo);
                }
            }
        }
    }
}

export default ViewAddPower;